package com.eedi.framework.config.dal.mapper;


import com.eedi.framework.mybatis.core.mapper.BaseMapperX;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.eedi.framework.config.dal.dataobject.ConfigValueDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;


/**
 * 配置项值 Mapper
 *
 */
@Mapper
public interface SysConfigValueMapper extends BaseMapperX<ConfigValueDO> {


    default List<ConfigValueDO> getValueByCodeIncludeList(String cfgCode, String bizKey) {
        return selectList(new LambdaQueryWrapper<ConfigValueDO>()
                .eq(ConfigValueDO::getCfgCode, cfgCode)
                .eq(ConfigValueDO::getBizKey, bizKey));
    }

    default ConfigValueDO getValueByCode(String cfgCode, String bizKey) {
        return selectOne(ConfigValueDO::getCfgCode, cfgCode, ConfigValueDO::getBizKey, bizKey);
    }

    default List<ConfigValueDO> getValueByCodeList(List<String> cfgCodeList, String bizKey) {
        return selectList(new LambdaQueryWrapper<ConfigValueDO>()
                .in(ConfigValueDO::getCfgCode, cfgCodeList)
                .eq(ConfigValueDO::getBizKey, bizKey)
        );
    }

    default void delByCode(String cfgType, String cfgCode, String bizKey) {
        delete(new LambdaQueryWrapper<ConfigValueDO>().eq(ConfigValueDO::getCfgType, cfgType).eq(ConfigValueDO::getCfgCode, cfgCode).eq(ConfigValueDO::getBizKey, bizKey));
    }

}
